The present invention is related to a bandwidth monitoring device, and more particularly to a bandwidth monitoring device for monitoring and controlling a packet bandwidth that flows into a network.
In the packet-switched communications system used by the Internet, because packets from numerous users can, generally speaking, make shared use of the same line, per-bandwidth communications costs can be kept noticeably low. However, by contrast, it becomes difficult to guarantee the QoS (Quality of Service) of communications, such as low latency and low drop rates, and communication modes that cannot be expected to provide best effort quality have been the norm. Demand for services that guarantee low latency, low drop rates and the other such QoS (QoS guaranteed services), which conventional telephone networks and leased line networks have achieved, has grown in line with the rapid development and growth of the Internet, and a framework for Internet and Internet Protocol (IP) network QoS, called Diffserv, has been standardized by the IETF. Diffserv is disclosed, for example, in “Overview of DiffServ Technology: Its Mechanism and Implementation,” IEICE Transactions on Information and Systems, Vol. 83, No. 5, pp957-964, 2000 by Takeshi Aimoto, Shigeru Miyake (Reference 1).
A variety of QoS services are proposed under Diffserv (Differentiated Services). For example, a QoS guaranteed service, which is called a premium service, is one that guarantees the low latency, low drop rates and other such QoS achieved via conventional telephone networks and leased line networks, and this is a very important service. In a premium service, pre-guaranteed bandwidth is contracted between the administrators of a user network and the carrier network over which this service is provided, and the carrier network guarantees the contracted bandwidth for the user network. However, when packets in excess of the contracted bandwidth flow into the carrier network from the user network, congestion occurs inside the carrier network, raising the possibility that the above-mentioned contract will not be able to be observed, and running the risk of affecting the traffic and QoS of other users. Accordingly, with Diffserv, the administrator of the carrier network disposes a bandwidth checking function called a UPC (User Parameter Control) function (UPC is the term used in ATM; in IETF terminology, it is also called a policing function) at the entrance of the carrier network in order to observe this contract. When packets in excess of the contracted bandwidth are received from the user network while packets of less than the contracted bandwidth with the user network are being passed, the UPC function protects the bandwidth resources within the carrier network by either dropping packets, or setting their in-network transmission priority lower.
As the bandwidth measurement algorithm in this UPC function, for example, the LB (Leaky Bucket) algorithm and Token Buckets algorithm are known.
FIG. 17 shows a model diagram representing a bandwidth monitoring algorithm. A method for achieving the LB algorithm is disclosed in U.S. Pat. No. 5,007,043 (Japanese Patent No. 2071245) (Reference 2). When using the LB algorithm, bandwidth can be checked while allowing a fixed fluctuation. The LB algorithm will be described using the figure. The LB algorithm can be expressed as a model using a leaky bucket 1003, which has a certain depth, and which has a hole in it. There is a hole in this bucket, water corresponding to packets continues to leak out in a quantity proportional to the monitoring speed (water leak 1002), and water of a quantity corresponding to packet length is poured into the bucket when a packet arrives (water quantity 1005 corresponding to packet length). The bucket is capable of holding water (packets) of a fixed quantity (bucket depth 1004: counter threshold value) in order to allow fluctuations and bursts. When water is poured into the bucket (when packets are inputted), if the water does not leak out of the bucket (if the packet length counter value does not exceed the counter threshold value), it is determined that this packet complies with the monitored bandwidth, and if it does leak out, it is determined that there was a violation.
Reference 2 comprises counter information corresponding to the quantity of water stored in the above-mentioned bucket; threshold value information corresponding to the depth of the bucket; monitored bandwidth information, which is the speed at which the water leaks out, and corresponds to the monitored bandwidth; and lead packet arrival time information, which is the time at which the lead packet arrived. When a cell, which is a fixed-length packet, arrives at the UPC function, first of all, the elapsed time is calculated from the current time and the lead packet arrival time information, and a counter decrement corresponding to the quantity of water that has leaked during this elapsed time is computed from the monitored bandwidth information (Process 1). Next, the counter decrement is subtracted from the counter information, and a counter residual quantity corresponding to the quantity of water in the bucket at the current time is calculated (Process 2). Finally, the value of one cell is added to this counter residual quantity, and when the added value is less than the threshold value information, the input packet is determined to be in “compliance,” and when it exceeds the threshold value information, it is determined to be in “violation” (Process 3).
In Reference 1, a bandwidth measurement algorithm that modifies the above-mentioned LB algorithm is also disclosed. With this algorithm, comparison with the threshold value information and a determination as to whether the bucket is in violation or compliance are done prior to adding the value of one cell in Process 3 of the above-mentioned LB algorithm. When a UPC function comprising, for example, the LB algorithm, is used at the entrance of a carrier network like this, it is possible to determine whether or not an input packet from a user complies with the contracted bandwidth.
This UPC algorithm developed for ATM, which transmits fixed-length cells, can also be extended to the Internet (IP networks), which transmits variable-length packets. For example, in Japanese Patent Laid-open No. 2002-368798“Packet Transmission Device Comprising Bandwidth Monitoring Function”, as a bandwidth monitoring function, there is disclosed a system, which can carry out bandwidth monitoring of variable-length packets (either IP packets or L2 frames (for example, Ethernet frames)) with respect to either IP packets or L2 frames according to the desire of the network administrator (Reference 3).
Conversely, in Internet-based data communications, the TCP (Transmission Control Protocol) protocol (For example, refer to J. Postel, “Transmission Control Protocol,” STD7, RFC793, September 1981, M. Allman, et al, “TCP Congestion Control,” RFC 2581, April 1999, RFC-1122 and 1123) is frequently utilized (Reference 4). This TCP protocol is a higher layer protocol of the IP protocol for IP networks, and establishes a virtual connection between a transmitting terminal and a receiving terminal. For a host application, the TCP protocol is a communication protocol that avoids data communications errors resulting from packet loss, and guarantees reliability. TCP comprises various flow control functions such that throughput deterioration does not occur over the long-term even when a state of congestion arises between the transmitting and receiving terminals in a network. More specifically, flow control is performed in accordance with a slow start phase and a congestion avoidance phase.
When a TCP connection is established, a time-out time corresponding to RTT (Round Trip Time), and a sliding window size initial value 1, which expresses the number of packets that can be transmitted without waiting to receive an ACK (Acknowledge) are set. Changes in the sliding window size of a transmitting terminal resulting from TCP flow control open a sliding window exponentially from the initial value 1 during the slow start phase at connection establishment. When the sliding window opens too much, the bandwidth of the packets being sent over the network becomes too large, resulting in network congestion and packet loss. When the receiving terminal detects packet loss, it responds by sending an ACK relative to the packets that were not received. When the transmitting terminal receives this ACK, it resends the packets, and when it receives an ACK with respect to these packets, since this is a case where a plurality of ACKs are received for the same packets, this phenomenon is called a duplicate ACK. When a duplicate ACK is received from the receiving terminal, the transmitting terminal determines that a slight degree of congestion has occurred, and switches to the congestion avoidance phase. In the congestion avoidance phase, extreme throughput deterioration such as that in the slow start phase can be avoided (since the system does not return to the initial value 1) by closing the sliding window by nearly half of the number of packets resident in the network. By contrast, when the transmitting terminal was unable to receive an ACK during the time-out period, a determination is made that all the transmitted packets were dropped, and that a serious state of congestions exists, and the transmitting terminal initializes the sliding window to 1, and switches over to the slow start phase. As a result, it takes time for the sliding window to recover, and throughput deteriorates sharply. To prevent throughput from deteriorating sharply from the contracted bandwidth, an ACK must be returned so as to avoid lapsing into the slow start state.
When TCP packets (IP packets on the TCP protocol) are subjected to bandwidth monitoring using the UPC function, TCP packets are continuously inputted into the UPC leaky bucket because the sliding window remains open until the transmitting terminal either receives a duplicate ACK or a time-out occurs. In the UPC of Reference 2 or 3, bursty determinations of contracted bandwidth violations are continuously made from the point in time at which the packet length counter information exceeded the counter threshold value. As a result of this, continuous packet dropping commences (because the violating packets are dropped by the monitoring node itself, and by other nodes that are in a state of congestion,) and the transmitting terminal detects a time-out. In this case, the problem was that, in TCP packet bandwidth monitoring using ordinary UPC, it was hard to avoid throughput deterioration resulting from the time-out.
Meanwhile, packet loss also occurs due to congestion in the routers constituting a network (the length of the queue awaiting transmission inside a router increases, resulting in queue overflow). This bursty packet loss resulting from such queue overflow is also a cause of a TCP transmitting terminal switching to the slow start state, and of greatly degraded transmission efficiency. A TCP packet retransmission function retransmits only dropped packets without switching over to the slow start phase if bursty drops are not made. RED (Random Early Detection) technology, which was developed for routers, is an improved method of queue control for a router output queue in Diffserv technology (Reference 1). RED technology is disclosed, for example, in “Random Early Detection Gateways for Congestion Avoidance,” by S. Floyd, IEEE/ACM Transaction on Networking, Vol. 1, No. 4, August 1993 (Reference 5) and “RED Dynamic Threshold Control System for Backbone Routers,” by Tsuyoshi Hasegawa, Natsuki Itaya, and Masayuki Murata, Institute of Electronics, Information and Communications Engineers (IEICE) Technical Report (NS2001-11), April 2001 (Reference 6). With RED technology, it is possible to artificially create a slight congestion condition, and guide a TCP packet-transmitting terminal to operate in the congestion avoidance phase by randomly dropping packets at a frequency corresponding to the degree of congestion in an initial state of output congestion in a router output queue. This has the outstanding effect of enabling transmission without lapsing into a slow start state, and without causing a large drop in transmitting terminal throughput.
However, RED technology (Reference 5) is a technology, which is applied to the queue control function of a router output port for inhibiting the deterioration of TCP packet throughput; it is not a function for inhibiting the deterioration of TCP packet throughput in the UPC function, which detects and checks packets from a user network at the input port. There has been a need for a bandwidth checking function that prevents the deterioration of TCP throughput while checking the transmission bandwidth from the user network (or transmitting terminal) with respect to a contracted bandwidth value at the connection part of the user network and the carrier network: UNI (User Network Interface).
As described hereinabove, when carrying out bandwidth monitoring of TCP packets (IP packets on the TCP protocol) using the UPC function, since the sliding window remains open until a duplicate ACK is received by the transmitting terminal or a time-out occurs, TCP packets are continuously inputted into the UPC leaky bucket. With conventional UPC technology (Reference 2 or 3), bursty determinations of contracted bandwidth violations are continuously made from the point in time at which the packet length counter information exceeded the counter threshold value. As a result, continuous packet dropping commences (because the violating packets are dropped by the monitoring node itself, and by other nodes that are in a state of congestion,) and the transmitting terminal detects a time-out. Thus, the problem was that, in TCP packet bandwidth monitoring using ordinary UPC, it was hard to avoid throughput deterioration resulting from a time-out.
This will be explained using FIG. 17. When the quantity of water 1005 corresponding to packet length (input packet speed) exceeds the quantity of water leaking out 1002 (contracted bandwidth), a quantity of water 1001 (packets) is accumulated in a bucket 1003 (speed fluctuation buffer) for checking bandwidth while permitting a fixed fluctuation. In a state in which a certain quantity of water 1001 has accumulated, when water quantity 1005 continues to be inputted in excess of the quantity of leaking water 1002, the bucket depth 1004 (counter threshold value) is exceeded. Thus, the input packets to the speed fluctuation buffer are continuously determined to be “contracted bandwidth violations.” TCP packets are dropped in a burst-like fashion at this time, the above-described TCP slow start function is activated, and TCP throughput greatly deteriorates. As a result, the problem was that, conventionally, the communications service received by a user was limited to a state that fell far short of the contracted bandwidth, and it was not possible to utilize the contracted bandwidth effectively. This is the cause of all packets being dropped when the packet length counter value of the LB algorithm exceeds the counter threshold value. So that throughput does not deteriorate much from the contracted bandwidth, an ACK must be returned so as to avoid lapsing into the slow start state.